/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.edinet.agencialinea3.ejb.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author ivan
 */
@Entity
@Table(name = "STATUS_OPERACIONES")
@NamedQueries({
    @NamedQuery(name = "StatusOperaciones.findAll", query = "SELECT s FROM StatusOperaciones s"),
    @NamedQuery(name = "StatusOperaciones.findByNumeroDespacho", query = "SELECT s FROM StatusOperaciones s WHERE s.numeroDespacho = :numeroDespacho"),
    @NamedQuery(name = "StatusOperaciones.findByFechaRecDoc", query = "SELECT s FROM StatusOperaciones s WHERE s.fechaRecDoc = :fechaRecDoc"),
    @NamedQuery(name = "StatusOperaciones.findByFechaSolPro", query = "SELECT s FROM StatusOperaciones s WHERE s.fechaSolPro = :fechaSolPro"),
    @NamedQuery(name = "StatusOperaciones.findByFechaPagDer", query = "SELECT s FROM StatusOperaciones s WHERE s.fechaPagDer = :fechaPagDer"),
    @NamedQuery(name = "StatusOperaciones.findByFechaRetMer", query = "SELECT s FROM StatusOperaciones s WHERE s.fechaRetMer = :fechaRetMer"),
    @NamedQuery(name = "StatusOperaciones.findByFechaAsigNave", query = "SELECT s FROM StatusOperaciones s WHERE s.fechaAsigNave = :fechaAsigNave"),
    @NamedQuery(name = "StatusOperaciones.findByFechaLlegaDoc", query = "SELECT s FROM StatusOperaciones s WHERE s.fechaLlegaDoc = :fechaLlegaDoc"),
    @NamedQuery(name = "StatusOperaciones.findByFehcaScaDoc", query = "SELECT s FROM StatusOperaciones s WHERE s.fehcaScaDoc = :fehcaScaDoc"),
    @NamedQuery(name = "StatusOperaciones.findByObservaciones", query = "SELECT s FROM StatusOperaciones s WHERE s.observaciones = :observaciones")})
public class StatusOperaciones implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "NUMERO_DESPACHO")
    private BigDecimal numeroDespacho;
    @Column(name = "FECHA_REC_DOC")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaRecDoc;
    @Column(name = "FECHA_SOL_PRO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaSolPro;
    @Column(name = "FECHA_PAG_DER")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaPagDer;
    @Column(name = "FECHA_RET_MER")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaRetMer;
    @Column(name = "FECHA_ASIG_NAVE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaAsigNave;
    @Column(name = "FECHA_LLEGA_DOC")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaLlegaDoc;
    @Column(name = "FEHCA_SCA_DOC")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fehcaScaDoc;
    @Size(max = 50)
    @Column(name = "OBSERVACIONES")
    private String observaciones;
    @JoinColumn(name = "NUMERO_DESPACHO", referencedColumnName = "NUMERO_DESPACHO", insertable = false, updatable = false)
    @OneToOne(optional = false)
    private Declaracion declaracion;

    public StatusOperaciones() {
    }

    public StatusOperaciones(BigDecimal numeroDespacho) {
        this.numeroDespacho = numeroDespacho;
    }

    public BigDecimal getNumeroDespacho() {
        return numeroDespacho;
    }

    public void setNumeroDespacho(BigDecimal numeroDespacho) {
        this.numeroDespacho = numeroDespacho;
    }

    public Date getFechaRecDoc() {
        return fechaRecDoc;
    }

    public void setFechaRecDoc(Date fechaRecDoc) {
        this.fechaRecDoc = fechaRecDoc;
    }

    public Date getFechaSolPro() {
        return fechaSolPro;
    }

    public void setFechaSolPro(Date fechaSolPro) {
        this.fechaSolPro = fechaSolPro;
    }

    public Date getFechaPagDer() {
        return fechaPagDer;
    }

    public void setFechaPagDer(Date fechaPagDer) {
        this.fechaPagDer = fechaPagDer;
    }

    public Date getFechaRetMer() {
        return fechaRetMer;
    }

    public void setFechaRetMer(Date fechaRetMer) {
        this.fechaRetMer = fechaRetMer;
    }

    public Date getFechaAsigNave() {
        return fechaAsigNave;
    }

    public void setFechaAsigNave(Date fechaAsigNave) {
        this.fechaAsigNave = fechaAsigNave;
    }

    public Date getFechaLlegaDoc() {
        return fechaLlegaDoc;
    }

    public void setFechaLlegaDoc(Date fechaLlegaDoc) {
        this.fechaLlegaDoc = fechaLlegaDoc;
    }

    public Date getFehcaScaDoc() {
        return fehcaScaDoc;
    }

    public void setFehcaScaDoc(Date fehcaScaDoc) {
        this.fehcaScaDoc = fehcaScaDoc;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    public Declaracion getDeclaracion() {
        return declaracion;
    }

    public void setDeclaracion(Declaracion declaracion) {
        this.declaracion = declaracion;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (numeroDespacho != null ? numeroDespacho.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof StatusOperaciones)) {
            return false;
        }
        StatusOperaciones other = (StatusOperaciones) object;
        if ((this.numeroDespacho == null && other.numeroDespacho != null) || (this.numeroDespacho != null && !this.numeroDespacho.equals(other.numeroDespacho))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "cl.edinet.agencialinea3.ejb.entity.StatusOperaciones[ numeroDespacho=" + numeroDespacho + " ]";
    }
    
}
